var express = require('express');
var query = require("../utils/connect");
var router = express.Router();
const { MvModel, VueModel } = require('../utils/model');
var { createToken, checkToken } = require("../utils/token")
var axios = require('axios')



router.get('/test', (req, res) => {
    query("select * from user", function (err, vals, fields) {
        //do something
        res.json(vals)
        if (err) {
            console.log(err);
            res.json({
                err,
                msg: "服务器异常",
                code: 503,
                type: 0
            })
        } else {
            if (vals.length > 0) {
                console.log(1);
                console.log(vals[0]);
            } else {
                console.log(2);
            }
        }
    });
})

// router.get('/test', (req, res) => {
//     // res.send('这是一个vue测试  test----test')
//     res.json({
//         msg: '这是一个vue测试  test----test'
//     })
// })

router.get('/movie', (req, res) => {
    var limit = req.query.limit * 1 || 0;
    MvModel.find({}, { _id: 0, title: 1, year: 1 }).limit(limit)
        .then(movie => {
            res.json({
                code: 200,
                movie
            })
        })
})

// router.post('/login',(req,res)=>{
//     res.json({
//         body:req.body,
//         code:200,
//         msg:'登陆成功',
//         headers:req.headers
//     })    
// })

// mysql登录
router.post('/login', (req, res) => {
    var { phone, password } = req.body;
    query(`select * from user where phone = '${phone}' and password = '${password}'`, function (err, vals, fields) {
        if (err) {
            res.json({
                code: 500,
                msg: '服务器异常- 未知错误'
            })
        } else {
            if (vals.length > 0) {
                var token = createToken({
                    phone: phone,
                    password: password
                })
                res.json({
                    code: 200,
                    msg: "登录成功",
                    vals,
                    type: 1,
                    token
                })
            } else {
                res.json({
                    code: 402,
                    msg: "登录失败,手机号码或者密码不正确",
                    type: 0,
                })
            }
        }
    })
})


// // 登录 
// router.post("/login", (req, res) => {
//     var body = req.body;
//     VueModel.findOne(body)
//         .then(result => {
//             if (result) {
//                 var token = createToken({
//                     phone: body.phone,
//                     password: body.password
//                 })
//                 res.json({
//                     code: 200,
//                     msg: "登录成功",
//                     result,
//                     body,
//                     type: 1,
//                     token
//                 })
//             } else {
//                 res.json({
//                     code: 402,
//                     msg: "登录失败,手机号码或者密码不正确",
//                     type: 0,
//                 })
//             }
//         }).catch(err => {
//             res.json({
//                 code: 500,   // 402  403 统一失败  
//                 msg: "服务器异常- 未知错误",
//                 type: 0,
//             })
//         })
// })

// mysql用户注册
router.post('/register', (req, res) => {
    var { phone, password, username, birthday } = req.body;
    query(`select * from user where phone = ${phone}`, function (err, vals, fields) {
        if (vals.length > 0) {
            res.json({
                code: 402,
                msg: '手机号已注册！'
            })
        } else {
            query(`insert user values(null,'${username}','${phone}','${password}','${birthday}','')`, function (err, val, fields) {
                if (err) {
                    res.json({
                        code: 500,
                        msg: '服务器异常- 未知错误'
                    })
                } else {
                    res.json({
                        code: 200,
                        msg: '注册成功,请马上登录'
                    })
                }
            })
        }
    })
})


// 用户注册  

// router.post("/register", (req, res) => {
//     var body = req.body;
//     VueModel.findOne({
//         phone: body.phone,
//     }).then(data => {
//         if (data) {
//             res.json({
//                 code: 402,   // 402  403 统一失败  
//                 msg: "注册失败,用户名已经存在",
//                 type: 0,
//             })
//         } else {
//             body.time = new Date();
//             console.log(body)
//             VueModel.insertMany(body)
//                 .then(result => {
//                     res.json({
//                         code: 200,   // 402  403 统一失败  
//                         msg: "注册成功,请马上登录",
//                         type: 1,
//                         result
//                     })
//                 })
//         }
//     }).catch(err => {
//         res.json({
//             code: 500,   // 402  403 统一失败  
//             msg: "服务器异常- 未知错误",
//             type: 0,
//         })
//     })
// })


// router.post('/checkPhone', (req, res) => {
//     var body = req.body;
//     VueModel.findOne(body, { _id: 0 }).then(result => {
//         if (result) {
//             res.json({
//                 code: 1,
//                 msg: '手机号已注册'
//             })
//         } else {
//             res.json({
//                 code: 0,
//                 msg: '手机号未注册'
//             })
//         }
//     })
// })

// mysql 判断手机号是否注册
router.post('/checkPhone', (req, res) => {
    var { phone } = req.body;
    query(`select * from user where phone = '${phone}'`, function (err, vals, fields) {
        if (vals.length>0) {
            res.json({
                code: 1,
                msg: '手机号已注册'
            })
        } else {
            res.json({
                code: 0,
                msg: '手机号未注册'
            })
        }
    })
})

// router.post('/checkUsername', (req, res) => {
//     var body = req.body;
//     VueModel.findOne(body, { _id: 0 }).then(result => {
//         if (result) {
//             res.json({
//                 code: 1,
//                 msg: '用户名已注册'
//             })
//         } else {
//             res.json({
//                 code: 0,
//                 msg: '用户名未注册'
//             })
//         }
//     })
// })

// mysql判断用户名是否注册
router.post('/checkUsername', (req, res) => {
    var { username } = req.body;
    query(`select * from user where username = '${username}'`, function (err, vals, fields) {
        if (vals.length>0) {
            res.json({
                code: 1,
                msg: '用户名已注册'
            })
        } else {
            res.json({
                code: 0,
                msg: '用户名未注册'
            })
        }
    })
})


// 获取用户信息
// router.get("/getuserinfo", (req, res) => {

//     // 判断身份的有效性 
//     checkToken(req, res, ({ phone }) => {
//         console.log(phone)
//         VueModel.findOne({
//             phone
//         }).then(result => {
//             res.json({
//                 code: 200,
//                 msg: "获取用户信息数据成功",
//                 type: 1,
//                 result
//             })
//         }).catch(err => {
//             res.json({
//                 code: 500,   // 500 统一失败  
//                 msg: "服务器异常- 未知错误",
//                 type: 0,
//             })
//         })
//     })
// })

// musql 获取用户信息
router.get("/getuserinfo", (req, res) => {

    // 判断身份的有效性 
    checkToken(req, res, ({ phone }) => {
        console.log(phone)
        query('select * from user', function (err, vals, fields) {
            var result = vals[0];
            if (err) {
                res.json({
                    code: 500,
                    msg: '服务器异常- 未知错误'
                })
            } else {
                res.json({
                    code: 200,
                    msg: "获取用户信息数据成功",
                    type: 1,
                    result
                })
            }
        })
    })
})


// 上传头像  
// multer 
var multer = require("multer");
var storage = multer.diskStorage({
    destination: function (req, file, cb) {   // 头像存放的目录 
        cb(null, './public/avatar')    // . 文件路径
    },
    filename: function (req, file, cb) {  // 新的文件名 
        cb(null, Date.now() + "WH2008" + file.originalname);  //  originalname 原文件名  1.jpg    145123213123WH20081.jpg
    }
})


var upload = multer({ storage: storage }).any();  // 可以上传任何格式的图片

// router.post('/uploadavatar', upload, (req, res) => {
//     checkToken(req, res, ({ phone }) => {
//         if (req.files) {
//             var path = req.files[0].path;
//             console.log(path);
//             VueModel.updateMany({
//                 phone,
//             }, {
//                 $set: {
//                     avatar: path
//                 }
//             }).then(result => {
//                 res.json({
//                     code: 200,
//                     msg: "头像上传成功",
//                     avatar: path,
//                     result
//                 })
//             }).catch(err => {
//                 res.json({
//                     code: 500,   // 500 统一失败  
//                     msg: "服务器异常- 未知错误",
//                     type: 0,
//                 })
//             })
//         }
//     })
// })

//mysql 上传头像
router.post('/uploadavatar', upload, (req, res) => {
    checkToken(req, res, ({ phone }) => {
        if (req.files) {
            var path = req.files[0].path;
            path = path.replace(/\\/g, '/')
            query(`update user set avatar = '${path}' where phone = '${phone}'`,function(err,vals,fields){
                if (err) {
                    res.json({
                        code: 500,
                        msg: '服务器异常- 未知错误'
                    })
                } else {
                    res.json({
                        code: 200,
                        msg: "头像上传成功",
                        avatar: path,
                    })
                }
            })
        }
    })
})


// 卖座数据接口
router.get("/maizuo", (req, res) => {
    var headers = req.headers;
    axios.get("https://m.maizuo.com/gateway?k=8204861", {
        params: req.query,
        headers: {
            'x-host': headers['x-host']
        },
    }).then(result => {

        res.json({
            code: 200,
            msg: "获取数据成功",
            ...result.data
        })
    }).catch(err => {
        res.json({
            code: 500,   // 500 统一失败  
            msg: "服务器异常- 未知错误",
            type: 0,
            err
        })
    })
})


//影院
router.post('/cinema', (req, res) => {
    var headers = req.headers;
    var body = req.body;
    axios.post("https://m.maizuo.com/gateway?k=138080", body, {
        headers: {
            'x-host': headers['x-host']
        },
    }).then(result => {
        res.json({
            code: 200,
            msg: "获取数据成功",
            ...result.data
        })
    }).catch(err => {
        res.json({
            code: 500,   // 500 统一失败  
            msg: "服务器异常- 未知错误",
            type: 0,
            err
        })
    })
})


module.exports = router;